package org.sdfc.model.attr.key

import com.documentum.fc.common.IDfId
import com.documentum.fc.common.IDfTime

import org.sdfc.model.attr._

/** Specialisation of KeyAttribute for RepeatingAttribute.
 */
abstract class KRepeatingAttribute[+T] (name : String)
extends KeyAttribute[T](name) with RepeatingAttribute[T] {
  
}


/** Specialisation of KeyAttribute for RepeatingBooleanAttribute.
 */
final class KRepeatingBooleanAttribute (name : String)
extends KRepeatingAttribute[Boolean](name) with RepeatingBooleanAttribute {
  
}

/** Specialisation of KeyAttribute for RepeatingIntAttribute.
 */
final class KRepeatingIntAttribute (name : String)
extends KRepeatingAttribute[Int](name) with RepeatingIntAttribute {
  
}

/** Specialisation of KeyAttribute for RepeatingStringAttribute.
 */
final class KRepeatingStringAttribute (name : String)
extends KRepeatingAttribute[String](name) with RepeatingStringAttribute {
  
}

/** Specialisation of KeyAttribute for RepeatingIdAttribute.
 */
final class KRepeatingIdAttribute (name : String)
extends KRepeatingAttribute[IDfId](name) with RepeatingIdAttribute {
  
}

/** Specialisation of KeyAttribute for RepeatingTimeAttribute.
 */
final class KRepeatingTimeAttribute (name : String)
extends KRepeatingAttribute[IDfTime](name) with RepeatingTimeAttribute {
  
}

/** Specialisation of KeyAttribute for RepeatingDoubleAttribute.
 */
final class KRepeatingDoubleAttribute (name : String)
extends KRepeatingAttribute[Double](name) with RepeatingDoubleAttribute {
  
}